
import java.util.Random;



/**
* Eine Implementierung des Interface ILongCreator. Es wird ein
* zufaelliger Wert zwischen min und max erzeugt. 
*
* @author Frank Klawonn
* Letzte Aenderung 1.8.2008
*
*/
public class RandomLongCreator implements ILongCreator
{

  //Zur Erzeugung der Pseudo-Zufallszahlen
  public Random prng;
 
  //Kleinster moeglicher Wert
  public long min;

  //Groesster moeglicher Wert
  public long max;

  //Laenge des Bereichs moeglicher Werte
  public long diff;



  /**
  * Konstruktor
  * Es muss minValue < maxValue gelten!
  *
  * @param minValue   Kleinster moeglicher Wert
  * @param maxValue   Groesster moeglicher Wert
  */
  public RandomLongCreator(long minValue, long maxValue)
  {
    min = minValue;
    max = maxValue;
    diff = max - min;
    prng = new Random();
  }



  /**
  * Implementierung der entsprechenden Methode des Interface.
  */
  public long getNextLong()
  {
    return((long) Math.abs(prng.nextFloat()*diff + min));
  }
}
